package com.lyn.hy;

import org.jfaster.mango.sharding.TableShardingStrategy;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class HyydflbShardingStrategy implements TableShardingStrategy<BigDecimal> {

    /**
     * 表分片策略：从2012年开始，每三年的数据放入一张表里，并以起始年份的后两位作为表名后缀。
     * 例如，将[2012,2014]年的数据存放在tbl_data_hyydflb_12表中。
     * @param table 表前缀
     * @param nianBD 年份
     * @return 最终的表名，例如TBL_DATA_HYYDFLB_12
     */
    @Override
    public String getTargetTable(String table, BigDecimal nianBD) {
        int nian = nianBD.intValue();
        if(nian<2012) {
            new RuntimeException("表分片策略错误");
        }
        int rest = (nian-2012)%3;
        int value = nian-rest;
        return table+"_"+value;
    }

//    public static void main(String[] args) {
//        int nian=2014;
//        int rest = (nian-2012)%3;
//        int value = nian-rest;
//        System.out.println(value);
//    }

//    static class StrategyConfig {
//        int start = 0;
//        int end = 0;
//        String tail = null;
//
//        public StrategyConfig(int start, int end, String tail) {
//            this.start = start;
//            this.end = end;
//            this.tail = tail;
//        }
//
//        public int getStart() {
//            return start;
//        }
//
//        public void setStart(int start) {
//            this.start = start;
//        }
//
//        public int getEnd() {
//            return end;
//        }
//
//        public void setEnd(int end) {
//            this.end = end;
//        }
//
//        public String getTail() {
//            return tail;
//        }
//
//        public void setTail(String tail) {
//            this.tail = tail;
//        }
//    }
}
